local status_ok, autosave = pcall(require, 'auto-save')
if not status_ok then
    vim.notify('autosave not found!')
    return
end

autosave.setup({
    enabled = false, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
    execution_message = {
        message = function() -- message to print on save
            return ('AutoSave: saved at ' .. vim.fn.strftime('%H:%M:%S'))
        end,
        dim = 0.18, -- dim the color of `message`
        cleaning_interval = 1250, -- (milliseconds) automatically clean MsgArea after displaying `message`. See :h MsgArea
    },
    trigger_events = { 'InsertLeave', 'TextChanged' }, -- vim events that trigger auto-save. See :h events
    -- function that determines whether to save the current buffer or not
    -- return true: if buffer is ok to be saved
    -- return false: if it's not ok to be saved
    condition = function(buf)
        -- local fn = vim.fn
        -- local utils = require('auto-save.utils.data')
        --
        -- if fn.getbufvar(buf, '&modifiable') == 1 and utils.not_in(fn.getbufvar(buf, '&filetype'), {}) then
        --     return true -- met condition(s), can save
        -- end
        -- return false -- can't save
        return true
    end,
    write_all_buffers = true, -- write all buffers when the current one meets `condition`
    debounce_delay = 135, -- saves the file at most every `debounce_delay` milliseconds
})
